<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <?php
            /*
             * While loop, ehk while tsükkel tähendab seda, et php interpretaator
             * kordab mingid programmilõiku (lõikusid) korduvalt seni, kuni while
             * tsükli tingimuslause on täidetud (ehk tsükli blokis käivitatav kood 
             * loob lõpuks pärast pontentsiaalselt mitmekordset käivitamist
             * tingimused while tsükli tingimuslause boolean väärtuse FALSE-ks
             * saamiseks (ehk tingimuslause ei vasta enam tsükli blokki sisenemise
             * tingimustele, ehk on väär, et tingimuslause pole ikka veel tõene))
             * 
             * while (tingimus)
             * {
             *    Kood, mida käivitada;
             * } 
             * 
             * inglise keeles:
             * 
             * while (expression)
             * {
             *    statement
             * }
             */
         
            /* JÄRGNEVAS NÄITES: 
             * LÜHEM JA KERGEM SELETUS
             * Oletame et meil on suhteliselt rumal masin, kes oskab vaid kaste
             * riiulitele tõsta. Kui masin aga kord kasti tõstma hakkab, siis
             * ta tõstab seda nii kaua, kuni enam kõrgemale ei saa, 
             * või kuni talle öeldakse STOPP - s.t. nüüd on õige kõrgus kast 
             * riiulisse panna. Masinal on omadus pärast igat tõstetud meetrit
             * temaga ühendatud arvutilt kontrollida, kas oleks aeg kast riiulisse panna. Kui ei, 
             * tõstab ta jälle kasti ühe meetri jagu kõrgemale ning küsib uuesti. Sellist olukorda
             * aitavadki meil näiteks tsüklid lahendada. Kui masinal oleks vaja 
             * kast 10 meetri kõrgusele tõsta, siis kontrolliks masin igaks juhuks 
             * 10 korda seda, kas ta on juba õigel kõrgusel või mitte. 
             * S.t. masin realiseerib allpool olevat tsüklit, inimene kontrolliks 
             * kasutajaliidese abil vaid seda, mitme meetri kõrgusele kast vaja 
             * tõsta on. 
             * 
             * PIKEM JA DETAILSEM SELETUS
             * 1) Esmalt kontrollitakse, kas while tingimuslause on täidetud (kui pole
             * siis tsükli blokki üldse ei sisenetagi). Antud juhul on algselt while tingimus,
             * mille alusel tsükli blokki siseneda, täidetud, 
             * kuna 1 on tõesti väiksem, kui 10 (S.t. tingimuslause
             * puhul ilmneb, et EI OSUTU vääraks väide, et on täidetud tingimus,
             * mille kohaselt muutuja $i on väiksem 10-st).
             * Seetõttu sisenetakse while tsükli blokki.
             * 2) Nii kaua, kui muutuja $i väärtus on väiksem 10-st, kuvatakse
             * brauseri jaoks tema väärtus (blokis olev echo $i skript). 
             * 3) Seejärel liidetakse muutuja $i väärtusele 1 juurde ($i++) ning vahetatakse rida.
             * 4) Et blokis rohkem täidetavaid lauseid pole, liigub programmivoog
             *  tagasi kontrollima, et ega blokis täidetud kood tsükli tingimust
             * juhuslikult ära ei täitnud (S.t. tingimuslause
             * puhul ilmneb, et OSUTUB vääraks väide, et on täidetud tingimus,
             * mille kohaselt muutuja $i on väiksem 10-st (s.t. tingimuslause
             * väljastaks väärtus false, misjärel tsüklisse enam ei sisenetaks))
             * 5) eelnevat 4-ja sammu korratakse, kuniks muutuja $i väärtus on 
             * tõesti saanud võrdseks või suuremaks arvust 10.
             * 6)Kui tingimus on lõpuks täidetud, jätkatakse skriptiga, mis 
             * asub edaspidi while tsükli blokist väljapool (kui edaspidi on üldse midagi
             * kirjutatud).
             */
            $i = 0;
            while ($i < 10)
            {
                echo $i++ . ' meetrit, ära pane veel kasti riiulisse!';
                echo '<br/>';
            }
            echo 'Masin, kui jõudsid siia oled kasti 10 meetri kõrgusele tõstnud,
                ole hea, pane see nüüd riiulisse!';
            
            /*
             * Panna tähele, et nii on võimalik koostada ka tsükkel, mis ei lõppe iial.
             * Selliseid lõputuid tsükleid tuleks üldiselt iga hinna eest vältida,
             * kuna programmivoog jääks nii while tsükli blokki pidama.
             * 
             * Järgnev on näide lõpmatust tsüklist, mida tuleks vältida.
             * Brauseris tulemust ilmselt ei näegi, kuna ta ei suuda antud koodi
             * iialgi lõplikult täita. Ta nimelt jääbki tsüklit niikaua täitma/laadima,
             * kuni vahemälu ja kõvaketas ükskord nii täis saavad, 
             * et süsteem sisuliselt kokku jookseb (tänapäeval on muidugi
             * sellegi olukorra lahendamiseks ennetusmeetmeid).
             * 
             * Järgneva lause käimalaskmiseks eemaldada koodi ümbert kommentaarid.
             */
            
            /*
            $k = 0;
            while ($k <= 10)
            {
                echo $k--;
            }
            */
        ?>
    </body>
</html>
